package com.csx.framework.springboot.sample.boot;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.stereotype.Component;

/**
 * 生效时机:
 *      在 spring 读取 beanDefinition 信息之后,实例化 Bean 之前
 * 使用场景:
 *      用户可以修改已经注册的 beanDefinition 的元信息
 * @author cuisongxu
 * @date 2024/2/25 周日 14:05
 */
@Component
public class C3BeanFactoryPostProcessor implements BeanFactoryPostProcessor {
    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
        System.out.println("顺序3 --- C3BeanFactoryPostProcessor 在spring读取完beanDefinition信息之后,实例化 Bean之前执行, 可以拿到 ConfigurableListableBeanFactory 类型对象");
        System.out.println();
    }
}
